The Internet comprises a vast number of computers and computer networks that are interconnected through communication links. The communication links exchange digital information using the well-known, standard transmission control protocol/Internet protocol (TCP/IP). Application protocols such as hypertext transmission protocol (HTTP) and file transfer protocol (FTP) are used on top of TCP/IP. Similar or identical transmission protocols and application protocols are also used by modern computers to communicate via private networks, such as intranets and local area networks (LAN's). These application protocols allow a server computer system to send information to a remote client computer system. The remote client computer system can then display or otherwise make use of the information. In the case of HTTP, the information might be displayed in the form of a so-called World Wide Web page.
The dramatic increase in Internet usage and in other forms of client/server communication in recent years has meant that servers receive more and more requests and are handling more and more connections and responses. Therefore, the speed at which servers operate in terms of the number of requests handled in a given time period has become very important in the overall speed and performance of Internet and other computer communication systems.
One process that slows down the performance of an operating system and applications installed on a server is the process of switching the context of execution. The context of execution is also referred to as simply the “context”, “process”, “thread” or “task”. The context is a basic unit of multitasking operating system kernels. The operating system kernel is that part of the operating systems that handles hardware resources and performs the fundamental operations of the operating system. Some current operating system kernels include some low level protocol functions, such as TCP/IP functions. In any case, a context switch is the “switching” between two or more processes, so that each process can use the central processing unit (CPU).
Context switches are fruitless in the sense that no useful application work is done by context switching. Some operations within a multitasking operating system or the applications installed on such a system can be performed without context switching. Such operations are often called “atomic” operations. However, operations that involve input and output, or “I/O”, normally require a context switch. Such operations include accessing media devices, and unfortunately, communicating over a network using an application protocol.